/* Universidad del Valle de Guatemala
 * CC2003 - Algoritmos y Estructuras de Datos
 * PROYECTO #1: RURPLE ME
 * Fecha de Entrega: Jueves 11 de Agosto de 2011
 */

/**
 * Clase permite generar una pantalla de bienvenida para la aplicacion.
 * @author Jose Antonio Bagur (10275), Luis Antonio Siguenza (10297) y Emilo Jose Miranda (10411).
 */

/* SE CARGAN LOS PAQUETES A UTILIZAR EN LA CLASE */
import javax.microedition.lcdui.*;

/* SE HEREDAN LOS MÉTODOS Y ATRIBUTOS DEL PAQUETE CANVAS */
public class MenuRurple extends Canvas {
  
    boolean prueba;
    
    /* MÉTODOS DE LA CLASE MENURURPLE */
    
    
    /**
     * Metodo que permite la creacion de la pantalla de bienvenida al inicio de la aplicacion.
     * @param g gráficos. 
     */ 
    public void paint(Graphics g) {        
        Image bienvenida = null;                                                                                            // SE INICIALIZA LA IMAGEN 
        g.fillRect(0, 0, getWidth(), getHeight());
        Font fuente = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_MEDIUM);                      // SE DEFINE EL ESTILO Y TAMAÑO DE LA FUENTE
        g.setFont(fuente);
        g.setColor(255, 255, 255);
        
        try {
            bienvenida = Image.createImage("/Bienvenida.png");
            prueba = true;
        } catch (Exception e) {
            System.err.println("ERROR: " + e);
        }    
        g.drawImage(tamañoImagen(bienvenida, this.getWidth(), this.getHeight()), 0, 0, Graphics.TOP | Graphics.LEFT);
    }
    
    /**
     * Metodo que permite cambiar el tamaño de las imagenes a desplegar en pantalla, adecuadas al tamaño de esta.
     * @param image imagen a desplegar en pantalla.
     * @param ancho de la pantalla.
     * @param alto de la pantalla.
     * @return imagen con el nuevo tamaño calculado.
     */
    private Image tamañoImagen(Image image, int ancho, int alto) {
        int anchoImagen = image.getWidth();
	int altoImagen = image.getHeight();
	
	Image newImage = Image.createImage(ancho, alto);
        Graphics g = newImage.getGraphics();
        
        for(int y = 0; y < alto; y++) {
            for(int x = 0; x < ancho; x++) {
                g.setClip(x, y, 1, 1);
                int dx = ((x * anchoImagen) / (ancho));
                int dy = ((y * altoImagen) / (alto));
                g.drawImage(image, x - dx, y - dy, Graphics.LEFT | Graphics.TOP);
            }
        }
		
        return Image.createImage(newImage);
    }
} // FIN DE LA CLASE MENURURPLE